[PATCH] [Mips] Add support for min/max/umin/umax atomics
authorMirko Brkusanin <Mirko.Brkusanin@rt-rk.com>
Thu, 12 Dec 2019 10:19:41 +0000 (11:19 +0100)
committerGianfranco Costamagna <locutusofborg@debian.org>
Mon, 27 Sep 2021 15:53:42 +0000 (16:53 +0100)
commit950f5afbe6f31b8dbe8c9c196e5d2df78ac7c152
tree56f702be3f3e74baa47309e37f26c9e39d12729e
parent30ed3d95a8ccf75daa99d83b7d27e9a060f8550a
[PATCH] [Mips] Add support for min/max/umin/umax atomics

In order to properly implement these atomic we need one register more than other
binary atomics. It is used for storing result from comparing values in addition
to the one that is used for actual result of operation.

https://reviews.llvm.org/D71028

Changed-by: James Clarke <jrtc27@debian.org>
[Backported to 9 by replacing Register with unsigned]

Gbp-Pq: Name D71028-mips-rust-test.diff
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsExpandPseudo.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsScheduleGeneric.td
llvm/lib/Target/Mips/MipsScheduleP5600.td
llvm/test/CodeGen/Mips/atomic-min-max-64.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic-min-max.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic.ll